package com.atguigu.common.exception;

/***
 * 错误码和错误信息定义类
 * 1. 错误码定义规则为5为数字
 * 2. 前两位表示业务场景，最后三位表示错误码。例如：100001。10:通用 001:系统未知异常
 * 3. 维护错误码后需要维护错误描述，将他们定义为枚举形式
 * 错误码列表：
 *  10: 通用
 *      001：参数格式校验
 *  11: 商品
 *  12: 订单
 *  13: 购物车
 *  14: 物流
 *  15: 用户
 *  16: 仓库
 *
 */
public enum BizCodeEnum {

    //11 商品异常
    PRODUCT_UP_EXCEPTION(11000,"商品上架异常"),
    PRODUCT_SPU_NULL_EXCEPTION(11001,"商品信息不存在"),

    //12 订单异常
    ORDER_SUBMIT_REPEAT_EXCEPTION(12000,"请不要重复提交订单"),
    ORDER_SUBMIT_PRICE_EXCEPTION(12001,"订单金额发生了变化"),
    ORDER_SECKILL_FAIL_EXCEPTION(12003,"抱歉，没有抢到商品"),

    //13 购物车异常
    CART_ADDTOCART_EXCEPTION(13000,"加入购物车失败"),
    CART_CARTITEM_NOT_EXISTS_EXCEPTION(13001,"购物车已被清空"),

    //15 用户异常
    USER_USER_EXISTS_EXCEPTION(15001,"用户已存在"),
    USER_PHONE_EXISTS_EXCEPTION(15002,"手机号已存在"),
    USER_LOGIG_ACCT_PASSWORD_INVAILD_EXCEPTION(15003,"登录账号或密码错误"),
    USER_ADDRESS_INVAILD_EXCEPTION(15004,"地址信息不正确"),

    //16库存异常
    WARE_NO_STOCK_EXCEPTION(16001,"库存不足"),

    //10 通用业务异常
    COMMON_TO_LOGIN_EXCEPTION(10000,"请您先登录"),
    COMMON_NO_TOKEN_EXCEPTION(10001,"请求需携带token"),
    COMMON_UNKNOW_EXCEPTION(10002,"系统未知异常"),
    COMMON_VAILD_EXCEPTION(10003,"参数格式校验失败"),
    COMMON_PARAM_EXCEPTION(10004,"参数错误"),
    COMMON_TO_MANY_REQUEST_EXCEPTION(10005,"请不要频繁请求");

    private int code;
    private String msg;
    BizCodeEnum(int code,String msg){
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
